The present invention relates to a value selector component for a graphic user interface.
Users of computer applications often wish to set a value interactively. Standard techniques include direct text input from the keyboard, and the use of spin and slider controls. These techniques typically use discrete input events such as keystrokes and mouse clicks, or continuous input events such as mouse movement. Some use a combination of the two: a slider is typically controlled by continuous mouse movement, but may also be controlled by mouse clicks on certain regions of the control, or by key strokes such as cursor keys or Page-Up. Some techniques use two dimensions of mouse movement, for example a colour picker may change hue as the mouse moves round a colour circle and saturation as the mouse moves to and from the centre of the circle. Other techniques use advanced input devices with many degrees of freedom.
Many applications are much more intuitive to use with continuous input than with discrete input. However, it is difficult to use continuous input to control a value with a wide range of values to a high precision. This invention provides an easy to use solution to that problem.
Accordingly, the present invention provides a value selector component for a graphic user interface control comprising: means for reading successive pointer movements when said user interface control is in focus; and means responsive to pointer movement in one direction to control a value and responsive to pointer movement in another direction to control a rate of change of the value in response to the movement in the one direction
The basic concept of the invention is to use two dimensions of mouse (or other pointer) movement to control a single value. Mouse movement in one dimension (e.g. left/right) controls the value as with a slider. Mouse movement in another direction (e.g. up/down) controls the sensitivity of the value movement ie. the rate of change of the value in response to the movement in the one direction.
For convenience in the rest of this description, we assume that horizontal movement controls the value and vertical movement controls the sensitivity. The invention also operates with vertical for value and horizontal for rate, or even with other skewed axes. Similarly, the description is in terms of mouse movements, even though the invention works with any two dimensional pointer device such as a pen or a touch screen. Finally, we call the invention and the screen area used to initiate interaction with it a control, even though there are many implementations of which an ActiveX control is just one. The control is described assuming conventional Windows(trademark) interaction techniques. The interaction is initiated when the control is selected and the mouse button depressed; interaction terminates when the mouse button is released. Other initiation and termination techniques could be used for other environments.